home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d11 / egainfo.arc / EGA.TXT < prev    next >
Text File  |  1987-07-14  |  6KB  |  200 lines

  1. The following is a concantenation of the messages from Joel Seiferas,
  2. 70516,1704 concerning the IBM Enhanced Graphics    Adapter    and its    BIOS
  3. interfaces.  Hopefully,    this will help until IBM releases "official"
  4. information....     connie
  5.  
  6.  
  7.  #: 80780      Sub-topic 1 - User Updates/Fixes
  8. Sb: EGA    doc.
  9.     26-Dec-84  19:01:04
  10. Fm: Joel Seiferas   70516,1704
  11. To: EGA    owners
  12.  
  13.  
  14.      The IBM Enhanced Graphics Adapter is comes    without    usage
  15. instructions, so the following message should be useful    to purchasers.
  16.  
  17. Date: Fri, 21 Dec 84 22:50:00 EST
  18. From: BrucCowan%UMich-MTS.Mailnet@MIT-MULTICS.ARPA
  19. Subject: IBM Enhanced Graphics Adaptor Information
  20.  
  21. Here are some very brief instructions for the BIOS interface for the
  22. enhanced graphics adaptor. No guarantees about accuracy. Hope they are
  23. of some    use. I haven't figured out most of them. Parenthesized comments
  24. indicate some things I have found out. I'd like any more information
  25. anyone comes up    with.
  26.  
  27. EGA extensions to ROM BIOS INT 10H.
  28.  
  29. (AH)=0 Set mode
  30.   (AL) 0-7 as before (7    is now user selectable)
  31.        D  graphics 320x200 on color (5153) monitor
  32.        E  graphics 640x200
  33.        F  graphics 640x350 on monochrome monitor
  34.       10  graphics 640x350 on 5154 monitor
  35.      All above have graphics memory at A000:0. If you use one of the
  36.      old modes,    the memory appears at the standard address for the
  37.      old adaptors (B000:0 or B800:0).
  38.  
  39. (AH)=10    Set palette registers
  40.   (AL)=0 Set individual    palette    register
  41.     BL = palette register to set, BH = value to    set
  42.   (AL)=1 Set overscan register
  43.     BH = value to set
  44.   (AL)=2 Set all palette registers and overscan
  45.     ES:DX points to a 17 byte table
  46.     bytes 0-15 are the palette values, respectively
  47.     byte 16 is the overscan value
  48.   (AL)=3 Toggle    intensify/blinking bit
  49.     BL - 0 enable intensify
  50.     BL - 1 enable blinking
  51.  
  52. (AH)=11    Character generator routine
  53.     Note: This call    will initiate a    mode set.
  54.   (AL)=00 User alpha load
  55.     ES:BP -    pointer    to user    table
  56.     CX    -    count to store
  57.     DX    -    character offset into table
  58.     BL    -    block to load
  59.     BH    -    number of bytes    per character
  60.   (AL)=01 ROM monochrome set
  61.     BL    -    block to load
  62.   (AL)=02 ROM 8x8 double dot
  63.     BL    -    block to load
  64.   (AL)=03 Set block specifier
  65.     BL    -    char gen block specifier
  66.         D3-D2 attr bit 3 one, char gen 0-3
  67.         D1-D0 attr bit 3 zero, char gen    0-3
  68.     Note: When using AL=03,    a function call    AX=1000H, BX=0712H is
  69.           recommended to set the color planes resulting in 512
  70.           characters and 8 consistent colors.
  71.  
  72.  
  73. (UA RE T):
  74.  
  75.  #: 80784      Sub-topic 1 - User Updates/Fixes
  76. Sb: EGA    doc. (cont.)
  77.     26-Dec-84  19:05:23
  78. Fm: Joel Seiferas   70516,1704
  79. To: EGA    owners (cont.)
  80.  
  81.  
  82.   Note:    The following interface    (AL=1x)    is similar in function to
  83.     (AL=0x)    except that:
  84.         - page 0 must be active
  85.         - points (bytes/char) will be recalculated
  86.         - rows will be calculated from the following:
  87.             int (200 or 350) / points - 1
  88.         - CRLEN    will be    calculated from:
  89.             (rows+1)*CRCOLS*2
  90.         - the CRTC will    be reprogrammed    as follows:
  91.             R09H = points -    1    max scan line
  92.                 R09H only done in mode 7
  93.             R0AH = points -    2    cursor start
  94.             R0BH = 0         cursor end
  95.             R12H =             vert disp end
  96.                    (rows+1)*points-1
  97.             R14H = points         underline loc
  98.     The above register calculations    must be    close to the original
  99.     table values or    undetermined results will occur.
  100.  
  101.     Note: The following interface is designed to be    called only
  102.           immediately after    a mode set. Failure to adhere to this
  103.           practice may cause undetermined results.
  104.  
  105.   (AL)=10 User alpha load
  106.     ES:BP -    pointer    to user    table
  107.     CX    -    count to store
  108.     DX    -    character offset into table
  109.     BL    -    block to load
  110.     BH    -    number of bytes    per character
  111.   (AL)=11 ROM monochrome set
  112.     BL    -    block to load
  113.   (AL)=12 ROM 8x8 double dot
  114.     BL    -    block to load  (this gives 43 lines in char mode)
  115.  
  116.     Note: The following interface is designed to be    called only
  117.           immediately after    a mode set. Failure to adhere to this
  118.           practice may cause undetermined results.
  119.   (AL)=20 User graphics    chars  INT 01FH    (8x8)
  120.     ES:BP -    pointer    to user    table
  121.   (AL)=21 User graphics    chars
  122.     ES:BP -    pointer    to user    table
  123.     CX    -    points (bytes/char)
  124.     BL    -    row specifier
  125.         BL = 0 user
  126.                DL - rows
  127.         BL = 1 14 (0EH)
  128.         BL = 2 25
  129.         BL = 3 43
  130.   (AL)=22 ROM 8x14 set
  131.     BL    -    row specifier
  132.   (AL)=23 ROM 8x8 double dot
  133.     BL    -    row specifier (this seems wrong, use BL=# rows)
  134.  
  135. (UA RE T):
  136.  
  137.  #: 80785      Sub-topic 1 - User Updates/Fixes
  138. Sb: EGA    doc. (concl.)
  139.     26-Dec-84  19:07:04
  140. Fm: Joel Seiferas   70516,1704
  141. To: EGA    owners
  142.  
  143.  
  144.   (AL)=30 Information
  145.         CX - points
  146.         DL - rows
  147.     BH - 0 return current INT 1FH ptr
  148.         ES:BP -    ptr to table
  149.     BH - 1 return current INT 44H ptr
  150.         ES:BP -    ptr to table
  151.     BH - 2 return ROM 8x14 ptr
  152.         ES:BP -    ptr to table
  153.     BH - 3 return ROM double dot
  154.         ES:BP -    ptr to table
  155.     BH - 4 return ROM double dot (top)
  156.         ES:BP -    ptr to table
  157.     BH - 5 return ROM alpha    alternate 9x14
  158.         ES:BP -    ptr to table
  159.  
  160. (AH)=12    Alternate select
  161.   (BL)=10 Return EGA information
  162.     BH = 0 - color mode in effect
  163.        = 1 - monochrome mode in effect
  164.     BL = memory value
  165.         0 0 - 064K      0 1 -    128K
  166.         1 0 - 192K      1 1 -    256K
  167.     CH = feature bits
  168.     CL = switch setting
  169.   (BL)=20 Select alternate print screen    routine
  170.  
  171. (AH)=13    Write string
  172.   This is the same as documented in the    PC/AT Technical    Reference
  173.   BIOS listing (but is new for non ATs).
  174.  
  175. (UA RE T):
  176.  
  177.  
  178.  #: 80885      Sub-topic 1 - User Updates/Fixes
  179. Sb: 43-line mode
  180.     27-Dec-84  06:25:36
  181. Fm: Joel Seiferas   70516,1704
  182. To: EGA    owners
  183.  
  184.  
  185.      Following the reposted underground    EGA documentation from Bruce
  186. Cowan, I finally managed to look at 43-line mode on the    monochrome
  187. display.  Here is the hex for a    tiny .com program to change to that
  188. mode:
  189.  
  190.  
  191. B80700CD10B411B012B300CD10CD20
  192.  
  193. ;checksum 1440
  194.  
  195.  
  196. To use the new mode, one should    avoid ANSI.SYS or modify it to allow 43
  197. lines.    Also, a    cursor is still    needed.
  198.  
  199. (UA RE T):
  200.